Technical Field
This application relates generally to managing a distributed system of record across a set of computing resources in a distributed network.
Brief Description of the Related Art
Distributed computer systems are well-known in the prior art. One such distributed computer system is a “content delivery network” (CDN) or “overlay network” that is operated and managed by a service provider. The service provider typically provides the content delivery service on behalf of third parties (customers) who use the service provider's shared infrastructure. A distributed system of this type typically refers to a collection of autonomous computers linked by a network or networks, together with the software, systems, protocols and techniques designed to facilitate various services, such as content delivery, web application acceleration, or other support of outsourced origin site infrastructure. A CDN service provider typically provides service delivery through digital properties (such as a website), which are provisioned in a customer portal and then deployed to the network.
A blockchain is a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block typically contains a cryptographic hash linking it to a previous block, and transaction data. For use as a distributed ledger, a blockchain typically is managed by a peer-to-peer network collectively adhering to a protocol for verifying new blocks. Once recorded, the data in any given block cannot be altered retroactively without the alteration of all subsequent blocks, which requires collusion of the network majority. Blockchains are suitable for the recording of events, various records management activities (such as identity management, transaction processing, documenting provenance, etc.) and others. Generalizing, a blockchain is a decentralized, distributed and digital ledger that is used to record transactions across many computers so that the record cannot be altered retroactively without the alteration of all subsequent blocks and the collusion of the network. In a typical blockchain, blocks hold batches of valid transactions that are hashed and encoded into a data structure. In this structure, and as noted above, each block includes the cryptographic hash linking it to the prior block in the blockchain. The linked blocks form a chain. This iterative process confirms the integrity of the previous block, all the way back to the original genesis (or first) block.
Traditional blockchain implementations treat the blockchain as a simple sequence of blocks. Such approaches severely limit the achievable performance of blockchain implementations, typically by creating bottlenecks in processing, communicating and storing the blockchain in its aggregate form.
A blockchain receipt is a specific solution to a more general problem of identifying the disposition of a transaction along with provenance information that links the transaction to some chain of trust. In the case of a blockchain, the chain of trust typically refers to cryptographically-associated blocks in a linked list of blocks (i.e., a chain) that ultimately links back to a genesis block or to some state that represents an authentic trusted snapshot of the blockchain state, which in turn links back to the genesis block. In traditional blockchain systems, for example, a receipt in the form of a blockchain receipt along with associated block header information is generally provided as evidence that a transaction has been finalized on the blockchain. In a typical use case, this data is presented to the payer and payee wallets as proof that the transaction has been finalized. In one mode of operation, a receipt includes a Merkle proof (generally a path through a block's Merkle tree) that is presented with respect to a block header in the chain of block headers. In another mode of operation, the blockchain in its entirety or in digest form (e.g., headers and associated transaction hashes) is made available to some intermediate element, which then generates receipts for some set of peripheral elements. In the aggregate, receipt data represent a significant amount of data to be captured and delivered to potentially millions and billions of wallets and other peripheral elements from the finalized blockchain. Given the performance requirements of the system, a method by which to efficiently handle this volume of data is needed.